#!/bin/bash

# 设置颜色
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

echo -e "${GREEN}===== 数据同步工具初始化脚本 =====${NC}"

# 检查是否安装了必要的软件
check_dependency() {
  if ! command -v $1 &> /dev/null; then
    echo -e "${YELLOW}警告: $1 未安装，请先安装 $1${NC}"
    exit 1
  fi
}

check_dependency python3
check_dependency pip3
check_dependency node
check_dependency npm

# 创建目录结构
echo -e "${GREEN}创建目录结构...${NC}"

# 确保目录存在
mkdir -p backend/app/models
mkdir -p backend/app/routes
mkdir -p backend/app/services
mkdir -p backend/app/utils
mkdir -p backend/migrations
mkdir -p frontend/src/api
mkdir -p frontend/src/assets/styles
mkdir -p frontend/src/components
mkdir -p frontend/src/layout/components
mkdir -p frontend/src/router
mkdir -p frontend/src/store
mkdir -p frontend/src/utils
mkdir -p frontend/src/views/dashboard
mkdir -p frontend/src/views/datasource
mkdir -p frontend/src/views/task
mkdir -p frontend/src/views/log
mkdir -p frontend/src/views/stats
mkdir -p frontend/src/views/monitor
mkdir -p frontend/src/views/settings
mkdir -p frontend/src/views/fake-data

# 创建虚拟环境（如果不存在）
if [ ! -d "venv" ]; then
  echo -e "${GREEN}创建Python虚拟环境...${NC}"
  python3 -m venv venv
fi

# 激活虚拟环境
echo -e "${GREEN}激活Python虚拟环境...${NC}"
source venv/bin/activate

# 安装后端依赖
echo -e "${GREEN}安装后端依赖...${NC}"
pip install -r requirements.txt

# 安装前端依赖
echo -e "${GREEN}安装前端依赖...${NC}"
cd frontend
npm install
cd ..

# 初始化数据库
echo -e "${GREEN}初始化数据库...${NC}"
cd backend
python -c "from app import create_app, db; app = create_app(); app.app_context().push(); db.create_all()"
cd ..

echo -e "${GREEN}初始化完成!${NC}"
echo -e "使用以下命令启动应用:"
echo -e "  后端: cd backend && python run.py"
echo -e "  前端: cd frontend && npm run dev"
echo -e "或者使用 ./start.sh 一键启动"